Equalizers such as adaptive decision feedback equalizers having a plurality of taps are widely used in digital communication receivers in order to provide correction for multipath channel distortion. Adaptive algorithms, such as the least mean squares (LMS) algorithm, are implemented in order to determine the tap weight values for the taps of the equalizer. Such adaptive algorithms are easy to implement and provide reasonably good performance. However, under difficult channel conditions, these algorithms may fail to provide tap weights that converge to the desired values.
It is well known that this failure may be avoided if the tap weights, instead of being initialized to values of zero as is often done, are initialized at least somewhat close to their final desired values based on a knowledge of the channel impulse response (CIR). An estimate of the channel impulse response may be derived from an a priori known training signal periodically transmitted prior to, and/or along with, the unknown data. One such system, in which an a priori known training signal is periodically transmitted prior to, and/or along with, unknown data, is specified in the ATSC 8VSB standard for digital terrestrial television broadcasting.
The channel impulse response is typically estimated in a receiver by cross-correlating the training signal as received with a representation of the known transmitted training signal stored in the receiver. The initial minimum mean square error (MMSE) tap weights may then be calculated from the initial channel estimate utilizing well known methods, such as those described in “Fast Computation of Channel-Estimate Based Equalizers in Packet Data Transmission,” IEEE Transactions on Signal Processing, N. Al-Dhahir, J. M. Cioffi, November 1995 and “A Fast Computational Algorithm for the Decision Feedback Equalizer,” IEEE Transactions on Communications, I. Lee, J. M. Cioffi, November 1995. The initial tap weights are then provided to the equalizer.
An example of such an equalizer is shown in FIG. 1 as a decision feedback equalizer 10. The decision feedback equalizer 10 comprises a plurality of taps Ntaps=NFF+NFB whose tap weights are applied to the received signal in order to eliminate the effects of multipath from the received signal. The decision feedback equalizer 10 includes a feed forward filter 12 having feed forward taps NFF and a feedback filter 14 having feedback taps NFB.
The operation of the decision feedback equalizer 10 is well known. The input to the feed forward filter 12 is the received data y. The feed forward filter 12 includes a plurality of outputs 141 through 14n and a corresponding plurality of multipliers 161 through 16n. The signal on each of the outputs 141 through 14n is multiplied by a corresponding tap weight gFF1 through gFFn from a tap weight update algorithm (such as the well known LMS algorithm) by a corresponding one of the multipliers 161 through 16n. The outputs from the multipliers 161 through 16n are added together by an adder 18, and the output from the adder 18 is supplied to the plus input of a subtractor 20.
The output of the subtractor 20 is considered the output of the decision feedback equalizer 10. The output of the subtractor 20 is also provided as an input to a non-linear decision device 22 and to the minus input of a subtractor 24. The non-linear decision device 22 operates as a slicer for the data at the output of the subtractor 20. When the non-linear decision device 22 receives training data at its input, the non-linear decision device 22 outputs sliced values of the a priori known training sequence. The output of the decision device 22 supplies sliced values to the input of the feedback filter 14 and to the plus input of the subtractor 24. The subtractor 24 compares the input of the decision device 22 to the output of the decision device 22 so as to form an error e[n] for the LMS algorithm.
The feedback filter 14 includes a plurality of outputs 261 through 26n and a corresponding plurality of multipliers 281 through 28n. The signal on each of the outputs 261 through 26n is multiplied by a corresponding tap weight gFB1 through gFBn from the above mentioned tap weight update algorithm by a corresponding one of the multipliers 281 through 28n. The outputs from the multipliers 281 through 28n are added together by an adder 30, and the output from the adder 20 is supplied to the minus input of the subtractor 20.
When the training sequence is first received, an estimate of the channel impulse response is typically calculated by cross-correlating the training signal as received with a stored version of the known training signal. The training sequence vector s of length N may be defined according to the following equation:s=[s[0]. . . s[N−1]]T.  (1)The channel impulse response may be defined as having a length L such that L=(La+Lc+1), where La is the length of the anti-causal portion of the channel impulse response and Lc is the length of the causal portion of the channel impulse response. A matrix A based on the known training signal may be defined by the following equation:
                    A        =                              [                                                                                s                    ⁡                                          [                      0                      ]                                                                                        0                                                                                                                                          0                                                                                                  s                    ⁡                                          [                      1                      ]                                                                                                            s                    ⁡                                          [                      0                      ]                                                                                                                                                                                                                                                                                                    ⋮                                                                      s                    ⁡                                          [                      1                      ]                                                                                                                                                                                ⋮                                                                              ⋮                                                  ⋮                                                  ⋰                                                                                                                                                                                          s                    ⁡                                          [                                              N                        -                        1                                            ]                                                                                        ⋮                                                                                                                                          0                                                                              0                                                                      s                    ⁡                                          [                                              N                        -                        1                                            ]                                                                                                                                                                                                    s                    ⁡                                          [                      0                      ]                                                                                                                    ⋮                                                  0                                                                                                                                                              s                    ⁡                                          [                      1                      ]                                                                                                                    ⋮                                                  ⋮                                                  ⋰                                                  ⋮                                                                              0                                                  0                                                                                                                                                              s                    ⁡                                          [                                              N                        -                        1                                            ]                                                                                            ]                                              (                              N                +                L                -                1                            )                        ×            L                                              (        2        )            The real vector of received symbols is designated as y with y[0] being designated as the first received training data element. The vector y of length N+L−1 may then be defined by the following equation:y=[y[−La], . . . ,y[0], . . . ,y[Lc+N−1]]T.  (3)The raw cross-correlation channel estimate is then given by the following equation:
                                          h            ^                    u                =                                            1                                                                  s                                                  2                                      ⁢                                                  ⁢                          A              T                        ⁢            y                    =                                    [                                                h                  ⁡                                      [                                          -                                              L                        a                                                              ]                                                  ⁢                                                                  ⁢                …                ⁢                                                                  ⁢                                  h                  ⁡                                      [                    0                    ]                                                  ⁢                                                                  ⁢                …                ⁢                                                                  ⁢                                  h                  ⁡                                      [                                          L                      c                                        ]                                                              ]                        T                                              (        4        )            where ∥s∥ is the 2-norm of s, and where the 2-norm of s is generally given as √{square root over (|s1|2+|s2|2+ . . . +|sn|2)}.
Then, the initial tap weights of the decision feedback equalizer 10 are calculated utilizing MMSE methods which determine the tap weights for the equalizer based on the matrix A and the channel estimate ĥu 
The present invention provides a novel technique for forming a more accurate estimate of the channel impulse response.